Міністерство освіти і науки України
Національний університет “Львівська політехніка”
Кафедра КСА
//
Лабораторна робота №3
З курсу «Програмування комп’ютерної графіки»
На тему: “ УПРАВЛІННЯ КОЛЬОРАМИ ТА СТИЛЯМИ ГРАФІЧНИХ ЗОБРАЖЕНЬ В СЕРЕДОВИЩІ MICROSOFT VISUAL STUDIO C++ 2008”
Варіант № 24
Львів - 2015
Завдання:
Написати програму на алгоритмічній мові C++, яка виводить на екран розмальоване графічне зображення. Варіанти завдань брати за вказівкою викладача з таблиці 1.
N% п/п
Варіанти завдань
24
/
Блок-схема алгоритму програми:
Список ідентифікаторів констант, змінних, процедур і функцій, використаних в програмі, та їх пояснення.
MoveTo( ) – переносить курсор у задану точку;
LineTo( ) – будує лінію до заданої точки;
CBrush - користувацькй пензель;
СPen –користувацьке перо;
dc.SelectObject(& ___ ); - використання користувацького пера;
CreatePen() - ініціалізує перо заданими атрибутами;
CreateBrush ( ) - ініціалізує пензель заданими атрибутами;
Rectangle( ) – малює прямокутник.
Остаточно відлагоджений текст програми згідно з отриманим завданням.
// ChildView.cpp : implementation of the CChildView class
//
#include "stdafx.h"
#include "PCG1.h"
#include "ChildView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CChildView
CChildView::CChildView()
{
}
CChildView::~CChildView()
{
}
BEGIN_MESSAGE_MAP(CChildView, CWnd)
ON_WM_PAINT()
END_MESSAGE_MAP()
// CChildView message handlers
BOOL CChildView::PreCreateWindow(CREATESTRUCT& cs)
{
if (!CWnd::PreCreateWindow(cs))
return FALSE;
cs.dwExStyle |= WS_EX_CLIENTEDGE;
cs.style &= ~WS_BORDER;
cs.lpszClass = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS,
::LoadCursor(NULL, IDC_ARROW), reinterpret_cast<HBRUSH>(COLOR_WINDOW+1), NULL);
return TRUE;
}
void CChildView::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: Add your message handler code here
// Do not call CWnd::OnPaint() for painting messages
RECT rect;
GetClientRect(&rect);
RECT rctA;
rctA.left = 20;
rctA.top = 30;
rctA.right = 180;
rctA.bottom = 230;
RECT rctB = { 20, 30, 180, 230 };
CBrush red_brush, black_brush, green_brush, yelow_brush, blue_brush, pink_brush, white_brush, gray_brush;
CPen blue_pen, gray_pen, pink_pen, green_pen, black_pen, yelow_pen, red_pen, white_pen;
// CPaintDC dc(this);
black_brush.CreateSolidBrush(RGB(0, 0, 0));
white_brush.CreateSolidBrush(RGB(255, 255, 255));
blue_brush.CreateSolidBrush(RGB(61, 12, 255));
pink_brush.CreateSolidBrush(RGB(255, 0, 255));
red_brush.CreateSolidBrush(RGB(255, 0, 0));
green_brush.CreateSolidBrush(RGB(0, 255, 0));
yelow_brush.CreateSolidBrush(RGB(255, 255, 0));
gray_brush.CreateSolidBrush(RGB(139, 128, 126));
//
black_pen.CreatePen(0, 1, RGB(0, 0, 0));
white_pen.CreatePen(0, 1, RGB(255, 255, 255));
blue_pen.CreatePen(0, 1, RGB(61, 12, 255));
gray_pen.CreatePen(0, 1, RGB(139, 128, 126));
red_pen.CreatePen(0, 1, RGB(255, 0, 0));
pink_pen.CreatePen(0, 1, RGB(255, 0, 255));
yelow_pen.CreatePen(0, 1, RGB(255, 255, 0));
green_pen.CreatePen(0, 1, RGB(0, 255, 0));
//червоний колір
dc.SelectObject(&red_pen);
dc.SelectObject(&red_brush);
dc.Rectangle(430, 580, 525, 505);//лівий нижній квадрат(червоний)
dc.Rectangle(563, 417, 650, 497);//квадрат червоний посередині
dc.Rectangle(470, 232, 558, 345);//квадрат червоний вгорі справа
//синій колір
dc.SelectObject(&blue_pen);
dc.SelectObject(&blue_brush);
dc.Rectangle(430, 500, 465, 417);//вище червоного(синій)
dc.Rectangle(831, 580, 757, 468);//правий нижній (синій)
dc.Rectangle(695, 545, 831, 580);//правий нижній повністю синій лівіше
dc.SelectObject(&blue_brush);
dc.Rectangle(831, 232, 757, 345);//синій над жовтим справа вверху
dc.Rectangle(655, 315, 757, 345);//синій повністю
//сірий колір
dc.SelectObject(&gray_pen);
dc.SelectObject(&gray_brush);
dc.Rectangle(530, 448, 558, 580);//сірий нижній прямокутник біля жовтого червоного
dc.Rectangle(558, 502, 620, 540);//сірий вправо
dc.Rectangle...